package com.heima.article.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.heima.model.common.dtos.ArticleDto;
import com.heima.model.common.dtos.ArticleHomeDto;
import com.heima.model.common.dtos.CommentSaveDto;
import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.common.pojos.article.ApArticle;
import org.apache.ibatis.annotations.Param;

import java.util.Map;

/**
 * @author 陈辉
 * @data 2024 9:49
 */
public interface ApArticleService extends IService<ApArticle> {

    /**
     * 加载文章信息
     *
     * @param homeDto 查询条件
     * @param type 1：加载更多 2：加载更新
     * @return
     */
    ResponseResult load(ArticleHomeDto homeDto, int type);

    /**
     * 保存或修改文章信息
     *
     * @param articleDto
     * @return
     */
    ResponseResult saveOrUpdateArticle(ArticleDto articleDto);

    /**
     * 文章上下架
     *
     * @param map
     */
    void downOrUp(Map map);

    /**
     * 自媒体-评论管理的打开或关闭
     * @param articleId
     * @param isComment
     */
    void updateIsCommentStatus(Long articleId, Integer isComment);


    /**
     * 自媒体端-评论管理的清空评论数量
     *
     * @param articleId
     */
    void deleteAllComment(Long articleId);


    /**
     * 查找作者信息
     *
     * @param articleId
     * @return
     */
    ResponseResult queryArticle(Long articleId);

    /**
     * 修改文章信息
     *
     * @param articleDto
     * @return
     */
    ResponseResult updateArticle(ArticleDto articleDto);


    /**
     * 存入文章的用户行为信息
     * @param articleDto
     * @return
     */
    ResponseResult behaviorArticle(ArticleDto articleDto);

    /**
     * 查询文章是否可以评论
     *
     * @param articleId
     * @return
     */
    ResponseResult isComment(String articleId);

    void computeHotArticleJob();

    ResponseResult loadHotArticle(ArticleHomeDto homeDto, int index);
}
